This invention relates generally to computers and, more particularly, to tracking the effects of different combinations of application programs on a computer.
When attempting to vertically scale a system, understanding the interactions of co-resident applications is vital to understanding their system resource requirements. The traditional methods of determining the ability of applications to co-reside require an integrator providing a computing device such as a mainframe computer, personal computer, handheld computer, and the like, to test all possible combinations of software (also referred to herein as “applications”) that may be deployed on the computing device to determine if all combinations allow the computing device to function appropriately. Testing in this manner may be acceptable when there are only a few applications but, as independent software vendor (ISV) and partner applications are added, the domain of end user application combinations grows exponentially. It becomes impractical to test all of the combinations and, even if it was practical to test all combinations of existing applications, it will still remain impractical to constantly test all possible new applications that could be installed on the computing device.
Another method of determining whether co-resident applications will be able to run on a particular computing device is to rely on the system requirements of third parties (ISVs and partners) and use those to estimate workloads on the computing device. This method, however, does not a priori reveal whether two applications designed by different ISVs may have adverse effects on each other. It would be impractical to expect ISV's to test their software with all other ISV's (possibly competitors) for the same reasons as it would be for a system integrator as described above.
Further, relying only on a stand-alone profile of each application, and combining applications based on their profile requirements may fail to reveal negative interaction consequences as well as overstate system requirements. For instance, application A may require 2 GB of memory and application B may require 1 GB of memory, but together they may both be able to operate with 2.5 GB of memory. Combining the requirements would also put integrators at a disadvantage with respect to the ISVs supplying the applications because an integrator may only be as accurate as the ISV's determination of the application's requirements.
There exists a need, therefore, for the ability to measure application co-residency capability without having to test each combination of applications.
In addition, in some cases, it may be desirable to reconfigure existing application configurations for a number or reasons. Again, having the ability to measure co-residency capability and performance without having to test each combination of applications is desirable in such an instance.